#include <mockcpp/mockcpp.hpp>
#include <testngpp/testngpp.hpp>
#include <Quantity.h>
#include <LengthUnit.h>

USING_MOCKCPP_NS
USING_TESTNGPP_NS

FIXTURE(LengthUnit)
{
        TEST(should be able to compare Inch to Feet)
        {
                Length inch (12, INCH);
                Length feet (1,  FEET); 
                 
                ASSERT_TRUE (inch == feet);
        } 

        TEST(should be able to compare Inch to Mile)
        {
                Length inch (1760 * 3 * 12, INCH);
                Length mile (1, MILE);

                ASSERT_TRUE (inch == mile);
        } 

        TEST(should be able to compare Inch to Yard)
        {
                Length inch (3 * 12, INCH);
                Length yard (1, YARD);

                ASSERT_TRUE (inch == yard);
        }

        TEST(should be able to compare Feet to Mile)
        {
                Length feet (3 * 1760, FEET);
                Length mile (1, MILE);
 
                ASSERT_TRUE (feet == mile);
        }

        TEST(should be able to compare Feet to Yard)
        {
                Length feet (3, FEET); 
                Length yard (1, YARD);

                ASSERT_TRUE (feet == yard);
        }

        TEST(should be able to compare Mile to Yard)
        {
                Length mile (1, MILE);
                Length yard (1760, YARD);

                ASSERT_TRUE (mile == yard);
        }

        TEST(should be able to add Mile with Yard)
        {
                Length mile (1, MILE);
                Length yard (1760, YARD);
                Length inch (2 * 1760 * 3 * 12, INCH);

                ASSERT_TRUE ((mile + yard) == inch);
        }

        TEST(should be able to diplay 35 INCH)
        {
                Length quantity(35, INCH);
                cout << quantity<< endl; 
                // how to dump output to test stream
        }

        TEST(should be able to display 1781 YARD)
        {
                Length quantity(1781, YARD);
                cout << quantity<< endl; 
        }

};
